<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #box1{
            width: 100px;
            height: 100px;
            background-color: red;
            position: absolute;
        }
        #box2{
            width: 100px;
            height: 100px;
            background-color: yellow;
            position: absolute;
            top: 200px;
            left: 200px;
        }
    </style>
    <script>
        window.onload = function(){
            // 拖拽box1元素
            // 拖拽的流程：
            //      1.当鼠标在被拖拽元素上按下时，开始拖拽  onmousedown
            //      2.当鼠标移动时被拖拽元素跟随鼠标移动    onmousemove
            //      3.当鼠标松开始时，被拖拽元素固定在当前位置 onmouseup
            // 获取box1
            var box1 = document.getElementById("box1");
            // 为box1绑定一个鼠标按下事件
            // 当鼠标在被拖拽元素上按下时，开始拖拽  onmousedown
            box1.onmousedown = function(event){
                event = event || window.event;
                // div的偏移量 鼠标.clientX - 元素.offsetLeft
                // div的偏移量 鼠标.clientY - 元素.ooffsetTop
                var ol = event.clientX - box1.offsetLeft;
                var ot = event.clientY - box1.offsetTop;

                // 为document绑定一个onmousemove事件
                document.onmousemove = function(event){
                event = event || window.event;
                // 当鼠标移动时被拖拽元素跟随鼠标移动 onmousemove
                // 获取鼠标的坐标
                var left = event.clientX - ol;
                var top  = event.clientY - ot;

                // 修改box1 的位置
                box1.style.left = left + "px" ;
                box1.style.top = top + "px" ;
                };
                // 为元素绑定一个鼠标松开时间
                document.onmouseup = function(){
                // 当鼠标松开时，被拖拽元素固定在当前位置 onmouseup
                // 取消 document的onmousemove事件
                document.onmousemove = null;

                // 取消document的 onmouseup事件
                document.onmouseup = null;
            };

                
            };

            
        };
    </script>
</head>
<body>
    <div id="box1"></div>
    <div id="box2"></div>
    
</body>
</html>